Fix a regression in GtkAssistant child property handling
authorMatthias Clasen <mclasen@redhat.com>
Wed, 28 Aug 2013 15:51:19 +0000 (11:51 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 28 Aug 2013 15:51:19 +0000 (11:51 -0400)
GtkAssistant is bending the rules about child properties
of non-direct children, and the recent fix to accomodate
GtkInfoBar changes broke things. The effect was that child
properties of assistant pages in ui files were just not
applied, so all pages ended up without titles and with
the normal page type, leading to broken assistants all
over the place.

https://bugzilla.gnome.org/show_bug.cgi?id=706756

gtk/gtkcontainer.c

index b118346ec9a64f3f4a1941ed3f00236ab1366ef2..84dcd84cccca10f49558dcf503d9d6546de3a5b4 100644 (file)
@@ -582,16 +582,16 @@ gtk_container_buildable_set_child_property (GtkContainer *container,
   GValue gvalue = G_VALUE_INIT;
   GError *error = NULL;
 
-  if (gtk_widget_get_parent (child) != (GtkWidget *)container)
+  if (gtk_widget_get_parent (child) != (GtkWidget *)container && !GTK_IS_ASSISTANT (container))
     {
-      /* This can happen with internal children of complex
-       * widgets. Silently ignore the child properties in this case.
+      /* This can happen with internal children of complex widgets.
+       * Silently ignore the child properties in this case. We explicitly
+       * allow it for GtkAssistant, since that is how it works.
        */
       return;
     }
 
-  pspec = gtk_container_class_find_child_property
-    (G_OBJECT_GET_CLASS (container), name);
+  pspec = gtk_container_class_find_child_property (G_OBJECT_GET_CLASS (container), name);
   if (!pspec)
     {
       g_warning ("%s does not have a property called %s",